package com.ruoyi.verify.service;

import com.ruoyi.verify.domain.VerifyQuestionnaire;
import com.ruoyi.verify.domain.VerifyTemplate;

import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;

/**
 * 现场审核模板Service接口
 *
 * @author ygx
 * @date 2020-10-14
 */
public interface IVerifyTemplateService
{
    /**
     * 查询现场审核模板
     *
     * @param templateid 现场审核模板ID
     * @return 现场审核模板
     */
    public List<VerifyTemplate> selectVerifyTemplateById(String templateid);

    /**
     * 查询现场审核模板列表
     *
     * @param verifyTemplate 现场审核模板
     * @return 现场审核模板集合
     */
    public List<VerifyTemplate> selectVerifyTemplateList(VerifyTemplate verifyTemplate);

    /**
     * 新增现场审核模板
     *
     * @param verifyTemplate 现场审核模板
     * @return 结果
     */
    public String insertVerifyTemplate(VerifyTemplate verifyTemplate, String from);

    /**
     * 修改现场审核模板
     *
     * @param verifyTemplate 现场审核模板
     * @return 结果
     */
    public String updateVerifyTemplate(VerifyTemplate verifyTemplate);

    /**
     * 批量修改现场审核状态
     *
     * @param verifyTemplate 现场审核模板
     * @return 结果
     */
    public String updateTemplateStatus(Map<String, List<VerifyTemplate>> datas);

    /**
     * 批量删除现场审核模板
     *
     * @param ids 需要删除的数据ID
     * @return 结果
     */
    public String deleteVerifyTemplateByIds(String ids);

    /**
     * 删除现场审核模板信息
     *
     * @param templateid 现场审核模板ID
     * @return 结果
     */
    public int deleteVerifyTemplateById(String templateid);

    /**
     * 获取全部的模板类型
     * @return
     */
    public List<Map<String,String>>  selectType();

	   /**
  * 通过模板id获取该模板所有模块的名称和id
  *
  * @param
  * @return 结果
  */
    public List<Map<String,String>> selectVerifyid(String templateid);

    /**
     * 通过计划的所有模板id，将数据插入问卷表
     *
     * @param
     * @return 结果
     */
     public String  insertQuestionnaire(VerifyQuestionnaire verifyQuestionnaire,String factory);

     /**
      * 生成审核问卷
      *
      * @param VerifyQuestionnaire
      * @return 结果
      */
     public List<Object> selectQuestionnaire(VerifyQuestionnaire verifyQuestionnaire);

    /**
     * 生成审核问卷
     *
     * @param
     * @return 结果
     */
    public List<Object> selectAllQuestionnaire(VerifyQuestionnaire verifyQuestionnaire);

     /**
      * 生成审核问卷（问卷预览）
      *
      * @param VerifyQuestionnaire
      * @return 结果
      */
     public List<Object> selectQuestionnaire(String templateid,String verifytype);

     /**
      * 根据问卷id更新问卷打分、打分人、备注
      * @param verifyTemplateContent
      * @return
      */
     public String updateQuestionnaire(Map<String, List<VerifyQuestionnaire>> datas);

 	/**
 	 * 提交问卷
 	 * @param 计划id：planid
 	 * @param 供应商code ：vendorcode
 	 * @param 模板id：verifyid
 	 * @return 结果
 	 */
     public String commitQuestionnaire(VerifyQuestionnaire verifyQuestionnaire);

 	/**
 	 * 根据计划id和供应商code获取问卷结果
 	 * @param planid
 	 * @return
 	 */
 	public LinkedHashMap<String, Object> selectResult(VerifyQuestionnaire verifyQuestionnaire);

    /**
     * VDA审核
     * 根据计划id和供应商code获取问卷结果
     * @return
     */
    public LinkedHashMap<String, Object> selectVdaResult(VerifyQuestionnaire verifyQuestionnaire);

    /**
     * 根据模板id查询模块
     */
    public List<VerifyTemplate> selectVerifyTemplateClass(String templateid);



    /**
     * 通过模板id获取该模板所有模块的名称和id
     *
     * @param
     * @return 结果
     */
    public List<VerifyTemplate> selectVerifyTemplateClassNew(String verifytype,String factorycode);


    public List<VerifyTemplate> selectHistoryVerifyTemplateClassByPlanid(Long planid);
}
